
const fs = require('fs');
const path = require('path');

// 定义你的组件文件夹路径
const componentsDir = path.resolve(__dirname, 'src/assets');

// 定义一个函数来递归地遍历文件夹并收集组件路径
function collectComponentPaths(dir) {
  const components = [];
  const files = fs.readdirSync(dir);

  files.forEach(file => {
    const fullPath = path.join(dir, file);
    const stat = fs.statSync(fullPath);

    if (stat.isDirectory()) {
      // 如果是文件夹，则递归地遍历它
      components.push(...collectComponentPaths(fullPath));
    } else if (stat.isFile() && /\.svg|\.vue|\.jsx|\.tsx$/.test(file)) {
      // 如果是文件，并且扩展名匹配我们的组件文件，则添加到列表中
      // components.push(fullPath.replace(process.cwd(), '')); // 相对于项目根目录的路径
      components.push(path.basename(file, path.extname(file)));
    }
  });

  return components;
}

// 收集组件路径
const componentPaths = collectComponentPaths(componentsDir);

// 将组件路径写入icons.json文件
fs.writeFileSync(path.resolve(__dirname, 'src/assets', 'iconsJson.json'), JSON.stringify(componentPaths, null, 2), 'utf-8');

console.log('icons.json generated successfully!');